Fix positioning of file format radios
authorMatthias Clasen <mclasen@redhat.com>
Sat, 1 Sep 2012 02:45:18 +0000 (22:45 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 1 Sep 2012 02:50:29 +0000 (22:50 -0400)
When the file name changes, the file format radios were dancing
around. This commit keeps them flush right.

gtk/gtkprintunixdialog.c

index f2948f5f4fcd7c31f7fd7751293a5c32e5a34061..21fd5c2c753fdfe4a0cb98ecdcc3fd41dc20187b 100644 (file)
@@ -1206,10 +1206,10 @@ add_option_to_extension_point (GtkPrinterOption *option,
       gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
       gtk_widget_show (hbox);
 
-      gtk_box_pack_start (GTK_BOX (extension_point), hbox, FALSE, FALSE, 0);
+      gtk_box_pack_start (GTK_BOX (extension_point), hbox, TRUE, TRUE, 0);
     }
   else
-    gtk_box_pack_start (GTK_BOX (extension_point), widget, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (extension_point), widget, TRUE, TRUE, 0);
 }
 
 static gint
@@ -1387,6 +1387,7 @@ update_dialog_from_settings (GtkPrintUnixDialog *dialog)
   GtkWidget *table, *frame;
   gboolean has_advanced, has_job;
   guint nrows;
+  GList *children;
 
   if (priv->current_printer == NULL)
     {
@@ -1440,6 +1441,16 @@ update_dialog_from_settings (GtkPrintUnixDialog *dialog)
                                            add_option_to_extension_point,
                                            priv->extension_point);
 
+  /* A bit of a hack, keep the last option flush right.
+   * This keeps the file format radios from moving as the
+   * filename changes.
+   */
+  children = gtk_container_get_children (GTK_CONTAINER (priv->extension_point));
+  l = g_list_last (children);
+  if (l && l != children)
+    gtk_widget_set_halign (GTK_WIDGET (l->data), GTK_ALIGN_END);
+  g_list_free (children);
+
   /* Put the rest of the groups in the advanced page */
   groups = gtk_printer_option_set_get_groups (priv->options);